package com.lzy.product.apis;

import com.github.pagehelper.PageInfo;
import com.lzy.framework.core.orm.db.Pager;
import com.lzy.product.dtos.BaseDomain;
import com.lzy.product.dtos.statistics.*;

import java.util.List;

/**
 * 统计业务服务
 * Created by WIN7 on 2017/12/7.
 */
public interface StatisticsServiceApi {

    /**
     * 个人统计日收益
     *
     * @return
     */
    StatisticsVoDto queryStatisticsView();

    /**
     * 查询总收益列表
     *
     * @param paramDto
     * @return
     */
    PageInfo<TotalProfitVoDto> queryTotalProfitList(Pager pager, BaseDomain paramDto);

    /**
     * 查询个人收益金额
     *
     * @param userId
     * @return
     */
    PersonalProfitVoDto queryPersonalProfit(Long userId);

    /**
     * 查询日收益记录
     *
     * @param pager
     * @param paramDto
     * @return
     */
    PageInfo<DayProfitVoDto> queryDayProfitList(Pager pager, DayProfitParamDto paramDto);

    /**
     * 无分页查询日收益记录
     *
     * @param paramDto
     * @return
     */
    List<DayProfitVoDto> queryDayProfitListNoPage(DayProfitParamDto paramDto);

    /**
     * 查询订单产品包含项列表
     *
     * @param pager
     * @param paramDto
     * @return
     */
    PageInfo<OrderProjectRecordVoDto> queryDayProjectList(Pager pager, OrderProjectParamDto paramDto);

    /**
     * 查询订单产生的产品包含项总额
     *
     * @param projectType 产品包含项类型(1-龙珠 2-股权 3-房车券 4-汽摩券)
     * @return
     */
    Integer queryTotalProject(Integer projectType);

    /**
     * 获取查询分利值
     *
     * @param paramDto
     * @return
     */
    String getQueryProfit(DayProfitParamDto paramDto);

    /**
     * 获取订单产生的产品包含项查询数额
     *
     * @param paramDto
     * @return
     */
    Integer getQueryProject(OrderProjectParamDto paramDto);
}
